<html>

	<head>
		<title>6.4.4 set 指令</title>
		<meta charset="utf-8" />
		<meta name="author" content="jfinal,yaolin" />
		<meta name="Keywords" content="" />
		<link rel="stylesheet" type="text/css" href="../../css/global.css" />
	</head>

	<body>
		<h1>6.4.4 set 指令</h1>
		<p>set 指令用于声明变量同时对其赋值，也可以是为已存在的变量进行赋值操作。 set 指令只 接受赋值表达式，以及用逗号分隔的赋值表达式列表，如下是代码示例：
		</p>
		<img src="../../images/templateEngine/6.4.4.1.png" />
		<p>以上代码中，第一行代码最为简单为 x 赋值为 123，第二行代码是一个赋值表达式列表， 会从左到右依次执行赋值操作，如果等号右边出现表达式，将会对表达式求值以后再赋值。 最 后一代码是输出上述赋值以后各变量的值，其她所有指令也可以像输出指令一样进行变量的访 问。
		</p>
		<p>请注意， #for、 #include、 #define 这三个指令会开启新的变量名作用域， #set 指令会首先 在本作用域中查找变量是否存在，如果存在则对本作用域中的变量进行操作，否则继续向上层 作用域查找，找到则操作，如果找不到，则将变量定义在顶层作用域中， 这样设计非常有利于 在模板中传递变量的值。
		</p>
		<p>当需要明确需要在本层作用域赋值时，需要使用<span class="red">#setLocal </span>指令，该指令所需参数与用法 与#set 指令完全一样，只不过作用域被指定为当前作用域。 #setLocal 指令通常用于#define、 #include 指令之内，用于实现通用功能，从而希望其中的变量名不会与上层作用域发生命名上 的冲突。
		</p>
	</body>

</html>